(function () {
    const context = {
        "BUFFER": null,
        "getChannelData": function (e) {
            const getChannelData = e.prototype.getChannelData;
            Object.defineProperty(e.prototype, "getChannelData", {
                "value": function () {
                    const results_1 = getChannelData.apply(this, arguments);
                    if (context.BUFFER !== results_1) {
                        context.BUFFER = results_1;
                        window.top.postMessage("audiocontext-fingerprint-defender-alert", '*');
                        for (var i = 0; i < results_1.length; i += 100) {
                            let index = Math.floor(Math.random() * i);
                            results_1[index] = results_1[index] + Math.random() * 0.0000001;
                        }
                    }
                    //
                    return results_1;
                }
            });
        },
        "createAnalyser": function (e) {
            const createAnalyser = e.prototype.__proto__.createAnalyser;
            Object.defineProperty(e.prototype.__proto__, "createAnalyser", {
                "value": function () {
                    const results_2 = createAnalyser.apply(this, arguments);
                    const getFloatFrequencyData = results_2.__proto__.getFloatFrequencyData;
                    Object.defineProperty(results_2.__proto__, "getFloatFrequencyData", {
                        "value": function () {
                            window.top.postMessage("audiocontext-fingerprint-defender-alert", '*');
                            const results_3 = getFloatFrequencyData.apply(this, arguments);
                            for (var i = 0; i < arguments[0].length; i += 100) {
                                let index = Math.floor(Math.random() * i);
                                arguments[0][index] = arguments[0][index] + Math.random() * 0.1;
                            }
                            //
                            return results_3;
                        }
                    });
                    //
                    return results_2;
                }
            });
        }
    };
    //
    context.getChannelData(AudioBuffer);
    context.createAnalyser(AudioContext);
    context.getChannelData(OfflineAudioContext);
    context.createAnalyser(OfflineAudioContext);
    document.documentElement.dataset.acxscriptallow = true;
})()